#include "jugador.h"

#include <stdlib.h>
#include <string.h>

struct jugador {
				char *nombre;
				char *equipo;
				size_t goles;
				size_t dorsal;
				};

jugador_t *jugador_crear(const char *nombre, const char *equipo, size_t dorsal)
{
	jugador_t *jugador = malloc(sizeof(jugador_t));
	
	if (!jugador)
		return NULL;
	
	jugador->nombre = malloc(sizeof(char)*(strlen(nombre)+1));
	
	if (!jugador->nombre)
		{
			free(jugador);
			return NULL;
		}

	jugador->equipo = malloc(sizeof(char)*(strlen(equipo)+1));
	
	if (!jugador->equipo)
		{
			free(jugador->nombre);
			free(jugador);
			return NULL;
		}

	strcpy(jugador->nombre,nombre);
	strcpy(jugador->equipo,equipo);

	jugador->goles = 0;
	jugador->dorsal = dorsal;

	return jugador;
}

void jugador_destruir(void* dato_jugador)
{
	jugador_t* jugador = dato_jugador;
	free(jugador->nombre);
	free(jugador->equipo);
	free(jugador);
}

const char *jugador_obtener_nombre(const jugador_t *jugador)
{
	if (!jugador)
		return NULL;
	return jugador->nombre;
}

const char *jugador_obtener_equipo(const jugador_t *jugador)
{
	if (!jugador)
		return 0;
	return jugador->equipo;
}

size_t jugador_obtener_goles(const jugador_t *jugador)
{
	if (!jugador)
		return 0;
	return jugador->goles;
}

size_t jugador_obtener_dorsal(const jugador_t *jugador)
{
	if (!jugador)
		return 0;
	return jugador->dorsal;
}

bool jugador_agregar_gol(jugador_t *jugador)
{
	if (!jugador)
		return false;
	jugador->goles++;
	return true;
}
